BOT_NAME = 'crawler'
 
SPIDER_MODULES = ['crawler.spiders']
NEWSPIDER_MODULE = 'crawler.spiders'

# 启用BatchSavePipeline
ITEM_PIPELINES = {
    'crawler.pipelines.BatchSavePipeline': 300,
}

# 配置日志
LOG_LEVEL = 'INFO'
LOG_FORMAT = '%(asctime)s [%(name)s] %(levelname)s: %(message)s'
LOG_DATEFORMAT = '%Y-%m-%d %H:%M:%S'
LOG_FILE = 'logs/nankai_crawler.log'  # 将日志保存到文件
LOG_ENABLED = True

# 启用自动限速
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_START_DELAY = 1.0
AUTOTHROTTLE_TARGET_CONCURRENCY = 8.0

# 请求超时和重试
DOWNLOAD_TIMEOUT = 15  # 下载超时时间
RETRY_TIMES = 3  # 重试次数

# 断点续传相关配置
# 每次运行时都会自动创建一个 jobdir 目录，用于保存爬虫状态
# 如果想停止爬虫再继续，请使用 Ctrl+C 停止，然后用相同命令重启
# 如果想从头开始爬取，请删除 jobdir 目录

# 禁用默认的Feed导出，改用自定义Pipeline
FEEDS = {}

# 创建必要的目录
import os
from pathlib import Path
Path('data').mkdir(exist_ok=True)
Path('logs').mkdir(exist_ok=True)
Path('crawls').mkdir(exist_ok=True)